import numpy as np
'''
这些函数在字符数组类（numpy.char）中定义：

函数	描述
add()	对两个数组的逐个字符串元素进行连接
multiply()	返回按元素多重连接后的字符串
center()	居中字符串
capitalize()	将字符串第一个字母转换为大写
title()	将字符串的每个单词的第一个字母转换为大写
lower()	数组元素转换为小写
upper()	数组元素转换为大写
split()	指定分隔符对字符串进行分割，并返回数组列表
splitlines()	返回元素中的行列表，以换行符分割
expandtabs()	将字符串里面的 \t 转换成 N 个 tab
strip()	移除元素开头或者结尾处的特定字符
lstrip()	去除字符串左边的空格
rstrip()	去除字符串右边的空格
join()	通过指定分隔符来连接数组中的元素
partition()	通过制定字符来分隔字符串
replace()	使用新字符串替换字符串中的所有子字符串
decode()	数组元素依次调用 str.decode
encode()	数组元素依次调用 str.encode
'''
# todo 函数的实例说明
# numpy.char.add() 函数依次对两个数组的对应元素进行字符串连接。
# 连接两个字符串：
# print(np.char.add(['hello'], [' world']))
# 连接多个字符串
# print(np.char.add(['hello', 'hi'], [' world', ' Tracy']))

# numpy.char.multiply() 将字符串或数组进行重复多重连接
# 多重连接
# print(np.char.multiply('hello ', 3))
# print(np.char.multiply(['hello', 'hi'], 3))

# numpy.char.center() 用于将字符串居中，并使用指定字符在左侧和右侧进行填充。三个参数分别是：字符串或数组，拼接后总字符串字符数，填充的字符。 这个函数感觉用在打日志的时候特别好。
# print(np.char.center('hello', 20, fillchar='*'))
# print(np.char.center(['hello', 'hi'], 19, fillchar='*'))

# numpy.char.capitalize() 将字符串的第一个字母转换为大写。
# print(np.char.capitalize('hello'))

# numpy.char.title()  将字符串的每个单词的第一个字母转换为大写。
# print(np.char.title('i love china'))

# numpy.char.lower()  将字符串或数组的每个元素转换为小写。
# 操作字符串
# print(np.char.lower('GOOGLE'))
# # 操作数组
# print(np.char.lower(['I', 'LOVE', 'CHINA']))

# numpy.char.upper() 将字符串或数组的每个元素转换为大写。
# 操作字符串
# print(np.char.upper('google'))
# # 操作数组
# print(np.char.upper(['', 'love', 'china']))

# numpy.char.split() 通过指定分隔符对字符串进行分割，并返回数组。分隔符默认为空格。
# 分隔符默认为空格
# print(np.char.split('do you love china?'))
# # 分隔符为 ,
# print(np.char.split('yes,i do', sep=','))

# numpy.char.splitlines() 用换行符作为分隔符来分割字符串，并返回数组 这里的换行符可以是\r，\n，\r\n。
# 换行符 \r
# print(np.char.splitlines('I\rLove China'))
# # 换行符 \n
# print(np.char.splitlines('I\nLove China'))
# # 换行符 \r\n
# print(np.char.splitlines('I\r\nLove China'))

# numpy.char.expandtabs() 将字符串里面的 \t 转换成 N 个 tab。
# 将 \t 转成6个tab
# print(np.char.expandtabs('i\tlove\tchina', 6))

# numpy.char.strip() 移除开头或结尾处的特定字符。
# 移除字符串头尾的 a 字符
# print(np.char.strip('it love china', 'i'))
# # 移除数组元素头尾的 a 字符
# print(np.char.strip(['it', 'love', 'china'], 'i'))

# numpy.char.lstrip() 去除字符串左边的空格。
# 去除左边的空格
# print(np.char.lstrip('    china  1  '))

# numpy.char.rstrip() 去除字符串右边的空格。
# 去除右边的空格
# print(np.char.rstrip('    china    '))

# numpy.char.join() 通过指定分隔符来连接数组中的元素或字符串。 可以指定多个分隔符分隔数组中对应的元素。
# 操作字符串
# print(np.char.join(':', 'china'))
# # 操作数组
# print(np.char.join(':', ['china', 'american']))
# # 指定多个分隔符操作数组元素
# print(np.char.join([':', '-'], ['china', 'american']))

# numpy.char.join() 通过指定字符来分隔数组中的元素或字符串。 通过指定的字符将字符串分割成指定字符前面的字符，指定的字符串和指定字符后面的字符三个部分。
# 操作字符串
# print(np.char.partition('china', 'i'))
# 操作数组
# print(np.char.partition(['china', 'like'], 'i'))

# numpy.char.replace() 使用新字符串替换字符串中的所有子字符串。
# 替换字符串
# print(np.char.replace('i love china', 'ov', 'ik'))

# numpy.char.encode() 对数组中的每个元素进行编码操作。默认编码是 utf-8，可以使用标准 Python 库中的编解码器。
# 编码
# print(np.char.encode('中国', 'utf-8'))

# numpy.char.decode() 对数组中的每个元素进行解码操作。
# a = np.char.encode('中国', 'utf-8')
# print(a)
# # 解码
# print(np.char.decode(a, 'utf-8'))

# 更多字符串操作 https://numpy.org/devdocs/reference/routines.char.html